package com.guodi.model.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guodi.common.utils.PageData;
import com.guodi.model.constant.CommonConst;
import com.guodi.model.dto.resp.DynamicEvaluationModelGetRespDTO;
import com.guodi.model.entity.MdlModelDir;
import com.guodi.model.entity.MdlModelResult;
import com.guodi.model.service.impl.MdlModelResultServiceImpl;

import java.util.List;
import java.util.Map;

/**
 * @描述：模型结果表 服务类
 * @作者: 代鹏刚
 * @日期: 2020-06-17
 */
public interface IMdlModelResultService extends IService<MdlModelResult> {

    /**
    * @描述: 根据实体类分页查询
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2020/6/18 15:28
    **/
    IPage<MdlModelResult> listByEntity(Page page, MdlModelResult mdlModelResult, CommonConst commonConst);

    /**
     * @描述：列表查询
     * @作者：邹艺
     * @时间：2019/09/11 13:00
     */
    List<MdlModelResult> listByEntity(PageData pd);

    /**
    * @描述: 根据模型获取因子关联模型结果
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2020/7/15 14:29
    **/
    Map<String, Map<String, Object>> statisticalByFactorId(String modelId);

    /**
     * @描述: 根据模型主键统计历年数据
     * @入参:
     * @出参:
     * @作者: 汤厚韬
     * @日期: 2021/1/19 14:58
     */
    String getHistoryYearData(String modelId);

    /**
    * @描述: 根据模型ID与年份查询模型结果
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2021/4/27 11:35
    **/
    List<MdlModelResult> findByModelId(String modelId, String year);
    /**
     * @作者: 林楷 2021/12/14
     * @描述: 根据模型目录，年份，行政去查询并整理综合监管模型结果
     * @参数:
     * @返回:
     */
    List<MdlModelResultServiceImpl.ApiResult> getZhjgByList(List<MdlModelDir> list, String year);

//    /**
//     * @描述: 获取综合监管统计数据
//     * @入参:
//     * @出参:
//     * @作者: 余家鑫
//     * @日期: 2022/3/14 下午5:05
//     */
//    List<MdlModelResultServiceImpl.ApiResult> getComprehensiveSupervisionStatisticInfo(ComprehensiveSupervisionModelGetReqVO reqVO);


    /**
     * @作者: 林楷 2021/12/14
     * @描述: 根据模型目录，年份，行政去查询并整理决策支持模型结果
     * @参数:
     * @返回:
     */
    List<Map<String, Object>> getJczcByList(List<MdlModelDir> list, String year, String division);


//    /**
//     * @描述: 查询动态评估模型的近三年超载市县个数
//     * @入参:
//     * @出参:
//     * @作者: 余家鑫
//     * @日期: 2022/3/11 下午2:17
//     * @return
//     */
//    DynamicEvaluationModelGetRespDTO getDynamicEvaluationStatisticInfo(DynamicEvaluationModelGetReqVO reqVO);


}
